Processo padre
Un processo padre, in informatica, è un processo che ha creato uno o più processi figli.
Sistemi Unix e Unix-like
[modifica | modifica wikitesto]Nei sistemi operativi Unix e Unix-like ogni processo è creato quando un altro processo esegue la chiamata di sistema fork(), eccetto che per il processo avente PID 0 (detto lo swapper) che è speciale e viene creato all'avvio del sistema. Il processo che invoca fork() è detto processo padre, mentre il nuovo processo è detto processo figlio. Ciascun processo (eccetto il processo con PID 0) ha un processo padre, e può avere zero o più processi figli.
Il kernel identifica ogni processo tramite il suo PID. All'avvio, il processo con PID 0 crea un nuovo processo tramite una chiamata a fork(). Questo nuovo processo, conosciuto come init, ha PID 1 ed è l'antenato di tutti gli altri processi del sistema.
Quando un processo figlio termina la sua esecuzione invocando la chiamata di sistema exit, o per aver causato un errore fatale, oppure in seguito alla ricezione di un segnale di terminazione (SIGTERM o SIGKILL), il suo exit status viene restituito al sistema operativo. Il processo padre viene quindi informato della terminazione del processo figlio tramite un segnale SIGCHLD, e può quindi procedere a recuperare l'exit status del figlio tramite la chiamata di sistema wait. Se il processo padre non recupera l'exit status del figlio, quest'ultimo diventa un processo zombie.
Un processo padre può a sua volta terminare prima dei propri processi figli: in questo caso essi diventano processi orfani, e vengono adottati da init.